===== SLIDE 1 ===== 单元8 综合项目——搭建教育大数据分析平台 ===== SLIDE 2 ===== 学习目标/Target 了解项目建设基础,能够说明项目背景、项目需求、原始数据结构和项目架构。 了解部署Spark,能够基于Spark On YARN模式完成Spark的部署。 掌握构建数据仓库,能够熟练运用HiveQL语句构建本项目所需的数据仓库。 熟悉业务数据采集流程,能够通过编写和运行Spark程序将业务数据采集到数据仓库。 ===== SLIDE 3 ===== 学习目标/Target 掌握业务数据分析方法,能够使用HiveQL语句完成指标统计。 了解数据可视化,能够将数据分析结果导出到MySQL,并利用FineBI进行可视化展示。 掌握业务数据预处理方法,能够使用HiveQL语句完成数据关联、字段转换、空值处理等操作。 ===== SLIDE 4 ===== 单元概述/ Summary 本单元以教育大数据分析平台的实现为案例,全面展示 Hive在实际项目中的综合应用。通过本项目,读者将进一步理解并掌握Hive在数据仓库建设中的关键作用。项目主要任务包括使用Hive搭建数据仓库,完成数据的转换与分析,同时结合Spark实现Hive数据的导入与导出。 ===== SLIDE 5 ===== 目录/Contents 01 02 03 任务:明确项目建设基础 任务:部署Spark 任务:构建数据仓库 04 任务:采集业务数据 ===== SLIDE 6 ===== 目录/Contents 05 06 07 任务:预处理业务数据 任务:分析业务数据 任务:实现数据可视化 ===== SLIDE 7 ===== 任务:明确项目建设基础 8.1 ===== SLIDE 8 ===== 8.1.1 了解项目背景 了解项目建设基础,能够说明本项目的背景。 学习目标 ===== SLIDE 9 ===== 近年来,随着移动互联网技术的普及与发展,在线教育行业迅速崛起,成为教育领域的重要组成部分。尤其是在教育数字化转型加速的背景下,线上教学模式广泛推广,打破了传统教学的时空限制,为广大师生提供了便捷灵活的学习方式。 8.1.1 了解项目背景 ===== SLIDE 10 ===== 在特定时期,例如大规模线下教学无法正常开展的情况下,全国各地的教师通过线上平台开展远程教学,实现“停课不停学”。同时,线上教育平台快速响应用户需求,承接了大量来自线下教学场景的用户流量,行业迎来一轮快速增长。 8.1.1 了解项目背景 ===== SLIDE 11 ===== 然而,用户规模的扩大也带来了新的挑战。如何提升服务质量和教学效果,成为各大教育平台面临的重要课题。如果不能对海量的用户行为数据进行深入挖掘和科学分析,企业管理者将难以获得有效的数据支持,影响平台的运营与决策。 8.1.1 了解项目背景 ===== SLIDE 12 ===== 在此背景下,教育大数据分析平台应运而生。该平台通过大数据技术对用户行为数据进行全面采集、分析与可视化展示,为教育平台优化资源配置、提升教学质量和用户体验提供有力的数据支撑。 8.1.1 了解项目背景 ===== SLIDE 13 ===== 8.1.2 分析项目需求 了解项目建设基础,能够说出本项目的需求。 学习目标 ===== SLIDE 14 ===== 为满足教育平台在用户服务优化、教学质量提升等方面的业务需求,本项目基于实际运营场景,围绕用户访问行为与咨询行为展开数据分析。在正式进行系统设计与开发之前,需明确平台所需解决的核心问题。以下是本项目的主要业务需求。 8.1.2 分析项目需求 ===== SLIDE 15 ===== 8.1.2 分析项目需求 访问用户量统计 会话页面统计 总访问用户量统计 来源渠道访问用户量统计 咨询率统计 访问用户量是指访问网站的用户总数(按用户去重计算),不同于访问次数,可避免单个用户多次访问造成的数据干扰。 在本项目中,重点统计访问网站的总用户量,以全面了解平台的整体流量水平。该数据不仅可用于评估网站的访问情况,还可作为后续数据分析的基础。 来源渠道是指用户访问网站的来源,例如搜索引擎推广、广告投放链接等。 咨询率是指在所有访问用户中,发起有效咨询的用户所占的比例。 会话页面是指用户在当前页面首次发起与客服对话的起始页面。 ===== SLIDE 16 ===== 8.1.3 认识原始数据结构 了解项目建设基础,能够说出本项目的原始数据结构。 学习目标 ===== SLIDE 17 ===== 本项目使用的数据来源于某在线教育网站的咨询系统,时间范围为2025年7月份的会话记录。这些数据存储在MySQL数据库的用户会话信息表web_chat_ems_2025_07和用户会话信息附属表web_chat_text_ems_2025_07中。用户会话信息表web_chat_ems_2025_07结构如表。 8.1.3 认识原始数据结构 字段 字段类型 描述 id INT 主键ID session_id VARCHAR(48) 会话ID sid VARCHAR(48) 用户ID create_time DATETIME 会话创建时间 ===== SLIDE 18 ===== 8.1.3 认识原始数据结构 字段 字段类型 描述 seo_source VARCHAR(255) 搜索来源 seo_keywords VARCHAR(512) 搜索关键字 ip VARCHAR(48) IP地址 area VARCHAR(255) 地区 country VARCHAR(16) 国家 province VARCHAR(16) 省级行政区 city VARCHAR(255) 城市 ===== SLIDE 19 ===== 8.1.3 认识原始数据结构 字段 字段类型 描述 origin_channel VARCHAR(32) 来源渠道 user_match VARCHAR(255) 所属客服 manual_time DATETIME 客服开始时间 begin_time DATETIME 客服领取时间 end_time DATETIME 客服结束时间 last_customer_msg_time_stamp DATETIME 用户发送最后一条消息的时间 ===== SLIDE 20 ===== 8.1.3 认识原始数据结构 字段 字段类型 描述 last_agent_msg_time_stamp DATETIME 客服回复最后一条消息的时间 reply_msg_count INT 客服回复消息数 msg_count INT 用户发送消息数 browser_name VARCHAR(255) 用户使用的浏览器名称 os_info VARCHAR(255) 用户使用的设备系统名称 ===== SLIDE 21 ===== 用户会话信息表web_chat_text_ems_2025_07结构如表。 8.1.3 认识原始数据结构 字段 字段类型 描述 id INT 主键ID referrer TEXT 上级来源页面,即当前页面的上一级页面 from_url TEXT 会话来源页面 landing_page_url TEXT 用户着陆页面,即广告点击或搜索结果页面 ===== SLIDE 22 ===== 8.1.3 认识原始数据结构 字段 字段类型 描述 url_title TEXT 当前页面标题 platform_description TEXT 用户信息 other_params TEXT 扩展字段 history TEXT 历史访问记录 ===== SLIDE 23 ===== 8.1.4 认识项目架构 了解项目建设基础,能够说出本项目的架构。 学习目标 ===== SLIDE 24 ===== 为了帮助读者更直观地理解教育大数据分析平台的开发流程与架构设计,本节将介绍该平台的基础架构,如图。 8.1.4 认识项目架构 ===== SLIDE 25 ===== 8.1.4 认识项目架构 基于上述架构实现教育大数据分析平台的流程如下。 1 利用HiveQL语句对用户行为数据进行预处理,使其符合业务需求。 利用HiveQL语句对数据仓库进行分层建模。 2 3 通过编写Spark程序将MySQL数据库中存储的业务数据(用户行为数据)导入Hive数据仓库中。 根据项目需求,使用HiveQL语句对预处理后的数据开展分析,生成所需结果。 4 通过编写Spark程序将分析结果从Hive数据仓库迁移回MySQL数据库。 5 通过FineBI商业智能工具对部分数据分析的结果进行可视化展现,辅助企业决策。 6 ===== SLIDE 26 ===== 任务:部署Spark 8.2 ===== SLIDE 27 ===== 8.2 任务:部署Spark 了解部署Spark,能够基于Spark On YARN模式完成Spark的部署。 学习目标 ===== SLIDE 28 ===== 通常情况下,系统的业务数据存储在关系型数据库中。在使用Hive对这些业务数据进行处理之前,需要先将其导入Hive数据仓库。同样地,当Hive数据仓库中的分析结果需要提供给外部系统使用时,也需要将数据导出,这就涉及到数据迁移。 8.2 任务:部署Spark ===== SLIDE 29 ===== 在大数据环境中,实现数据迁移的方式多种多样,例如使用数据迁移工具DataX、编写 Spark程序等。Spark是一个快速、通用的分布式计算引擎,广泛应用于大数据的处理与分析。它支持多种部署模式,包括Standalone、Spark on YARN和Spark on Kubernetes等。 8.2 任务:部署Spark ===== SLIDE 30 ===== 在已有Hadoop基础环境中,通常会选择Spark on YARN模式进行部署。这是因为该模式能够有效提高集群的资源利用率,并充分发挥YARN在资源调度与管理方面的优势。Spark on YARN的工作原理是将Spark作为客户端,向YARN集群提交应用程序,由YARN统一调度和分配资源。因此,在该模式下,通常只需在一台服务器上安装Spark,用于提交应用程序即可,而无须在集群的每台节点上都安装Spark。 8.2 任务:部署Spark ===== SLIDE 31 ===== 为了使Spark能够通过Thrift协议连接Hive 4.1.0版本的Metastore,从而正常获取Hive元数据并实现数据的读取与写入操作,需要使用与之兼容的Spark 4.1.0版本。截至本书编写完成时,Spark 4.1.0版本仅发布了预览版(Preview)。因此,本项目在部署Spark时,选用了Spark 4.1.0预览版作为运行环境。 8.2 任务:部署Spark ===== SLIDE 32 ===== 接下来,将演示如何在虚拟机Node03中,基于Spark on YARN模式部署Spark,具体操作步骤如下。 8.2 任务:部署Spark ===== SLIDE 33 ===== STEP 01 上传Spark安装包 将Spark安装包spark-4.1.0-preview2-bin-hadoop3.tgz上传到虚拟机Node03的/export/software目录中。 8.2 任务:部署Spark ===== SLIDE 34 ===== STEP 02 安装Spark 将Spark安装包解压缩至虚拟机Node03的/export/servers目录。在虚拟机Node03的/export/software目录执行如下命令。 tar -zxvf spark-4.1.0-preview2-bin-hadoop3.tgz -C /export/servers 8.2 任务:部署Spark 上述命令执行完成后,会在虚拟机Node03的/export/servers目录中生成一个名为spark-4.1.0-preview2-bin-hadoop3的文件夹,这里将其重命名为spark-4.1.0。在虚拟机Node03执行如下命令。 mv /export/servers/spark-4.1.0-preview2-bin-hadoop3 \ /export/servers/spark-4.1.0 ===== SLIDE 35 ===== STEP 03 创建配置文件spark-env.sh 通过复制模板文件spark-env.sh.template创建配置文件spark-env.sh。在虚拟机Node03的/export/servers/spark-4.1.0/conf目录中执行如下命令。 cp spark-env.sh.template spark-env.sh 8.2 任务:部署Spark ===== SLIDE 36 ===== STEP 04 修改配置文件spark-env.sh 在虚拟机Node03的/export/servers/spark-4.1.0/conf目录中使用vi编辑器编辑配置文件spark-env.sh,在该文件的末尾添加如下内容。 export YARN_CONF_DIR=/export/servers/hadoop-3.4.1/etc/hadoop export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://node01:8020/spark/history -Dspark.history.retainedApplications=30" 8.2 任务:部署Spark 配置Spark历史服务,并指定历史服务端口号、日志存储目录和记录数 配置YARN的配置文件目录,确保Spark能够正确地与YARN集成和通信 ===== SLIDE 37 ===== STEP 05 创建配置文件spark-defaults.conf 通过复制模板文件spark-env.sh.template创建配置文件spark-env.sh。在虚拟机Node03的/export/servers/spark-4.1.0/conf目录中执行如下命令。 cp spark-defaults.conf.template spark-defaults.conf 8.2 任务:部署Spark ===== SLIDE 38 ===== STEP 06 修改配置文件spark-defaults.conf 在虚拟机Node03的/export/servers/spark-4.1.0/conf目录中使用vi编辑器编辑配置文件spark-defaults.conf,在该文件的末尾添加如下内容。 spark.eventLog.enabled true spark.eventLog.dir hdfs://node01:8020/spark/history spark.yarn.historyServer.address=node03:18080 spark.history.ui.port=18080 8.2 任务:部署Spark 开启日志记录功能 指定日志存储目录,该目录需要与配置文件spark-env.sh中指定的日志存储目录一致 关联Spark历史服务和YARN,便于在YARN WEB UI中查看Spark历史服务记录的日志信息 指定Spark历史服务的端口号 ===== SLIDE 39 ===== STEP 07 配置Spark系统环境变量 为了便于Spark的管理和使用,需要在虚拟机Node03中配置Spark系统环境变量。在虚拟机Node03中使用vi编辑器编辑系统环境变量文件profile,在文件的末尾添加如下内容。 export SPARK_HOME=/export/servers/spark-4.1.0 export PATH=$PATH:$SPARK_HOME/bin export PATH=$PATH:$SPARK_HOME/sbin 8.2 任务:部署Spark ===== SLIDE 40 ===== STEP 08 初始化系统环境变量 初始化虚拟机Node03的系统环境变量,使系统环境变量文件profile中添加的内容生效。在虚拟机Node03执行如下命令。 source /etc/profile 8.2 任务:部署Spark STEP 09 创建日志存储目录 在HDFS中创建Spark历史服务存储日志的目录/spark/history,在虚拟机Node03中执行如下命令。 hdfs dfs -mkdir -p /spark/history ===== SLIDE 41 ===== STEP 10 启动Spark历史服务 在虚拟机Node03中启动Spark历史服务,具体命令如下。 start-history-server.sh 8.2 任务:部署Spark 上述命令执行完成后,会在虚拟机Node03中运行着一个名为HistoryServer的Java进程。读者可以通过在本地计算机的浏览器中输入http://192.168.121.134:18080访问Spark的历史服务。 ===== SLIDE 42 ===== STEP 11 验证Spark是否部署成功 为了验证基于Spark On YARN模式部署Spark是否成功,可以将Spark程序提交到YARN集群运行。这里使用了Spark官方提供的一个用于计算圆周率()的Spark程序作为测试程序。确保Hadoop集群处于启动状态下,在虚拟机Node03执行如下命令。 spark-submit \ --master yarn \ --deploy-mode client \ ${SPARK_HOME}/examples/src/main/python/pi.py \ 10 8.2 任务:部署Spark 指定将Spark程序提交到YARN集群 指定Spark程序的运行模式为Client 指定Spark程序的参数,表示计算圆周率的迭代次数为10 ===== SLIDE 43 ===== STEP 11 验证Spark是否部署成功 上述命令执行完成后,可以在本地计算机的浏览器中输入http://192.168.121.132:8088/cluster访问YARN Web UI,查看Spark程序的运行状态。Spark程序运行成功的效果如图。 8.2 任务:部署Spark ===== SLIDE 44 ===== STEP 11 验证Spark是否部署成功 在远程登录虚拟机Node03的窗口中查看圆周率的计算结果,如图。 8.2 任务:部署Spark ===== SLIDE 45 ===== 任务:构建数据仓库 8.3 ===== SLIDE 46 ===== 8.3 任务:构建数据仓库 掌握构建数据仓库,能够熟练运用HiveQL语句构建本项目所需的数据仓库。 学习目标 ===== SLIDE 47 ===== 本项目构建的数据仓库仅包含ODS层和DW层,未设置DA层。其原因在于,数据应用层通常需要支持频繁查询以及实时或近实时的响应。如果直接依赖Hive实现,往往需要额外设计分区、物化视图等优化措施,复杂度较高。 8.3 任务:构建数据仓库 ===== SLIDE 48 ===== 在本项目中,业务需求主要集中在离线分析与可视化。因此,分析结果由Hive导出至MySQL,再由FineBI直接连接MySQL进行可视化展示。这样的设计既能充分利用MySQL在高效查询方面的优势,又能有效降低Hive的计算与存储压力。 8.3 任务:构建数据仓库 ===== SLIDE 49 ===== 为避免针对每个需求单独生成结果表而导致表数量增加、维护成本上升,本项目将分析需求归纳为访问用户量与咨询用户量两个核心指标。其中,访问用户量用于满足网站访问用户数(去重)的相关需求,咨询用户量用于满足发起有效咨询用户数(去重)的相关需求。 8.3 任务:构建数据仓库 ===== SLIDE 50 ===== 围绕这两个指标,在DW层的DWS层设计相应的汇总事实表,从而统一支撑按地区、来源渠道等多维度的统计分析。本项目中数据仓库的结构如图。 8.3 任务:构建数据仓库 ===== SLIDE 51 ===== 接下来,将演示如何在Hive中构建本项目所使用的数据仓库,具体内容如下。 8.3 任务:构建数据仓库 ===== SLIDE 52 ===== 在ODS层中存储的是从业务系统导入的原始数据。为了避免在表被误删除时导致数据丢失,通常会将ODS层的表创建为外部表,以确保底层数据文件仍然保留。 此外,ODS层的数据访问频率相对较低,为了节省存储空间,通常会采用压缩率较高的存储方式。本项目中,选择使用ORC文件格式并结合Zstandard压缩方式来创建外部表,以实现高效存储和良好的压缩效果。 1.构建ODS层 8.3 任务:构建数据仓库 ===== SLIDE 53 ===== 在Hive中构建ODS层的操作步骤如下。 8.3 任务:构建数据仓库 1.构建ODS层 ===== SLIDE 54 ===== STEP 01 创建数据库itcast_ods,用于存储ODS层的表,具体HiveQL语句如下。 1.构建ODS层 8.3 任务:构建数据仓库 CREATE DATABASE IF NOT EXISTS itcast_ods; ===== SLIDE 55 ===== STEP 02 在数据库itcast_ods中创建表web_chat_ems_ods,具体HiveQL语句如下。 1.构建ODS层 8.3 任务:构建数据仓库 点击查看 ===== SLIDE 56 ===== STEP 02 在数据库itcast_ods中创建表web_chat_text_ems_ods,具体HiveQL语句如下。 1.构建ODS层 8.3 任务:构建数据仓库 点击查看 ===== SLIDE 57 ===== 在DW层中存储的是明细数据和汇总数据,这些数据会根据业务需求不断调整和更新。为了在删除表时能够同时删除其存储的数据,从而简化管理操作,通常会将DW层的表创建为内部表。 2.构建DW层 8.3 任务:构建数据仓库 ===== SLIDE 58 ===== 此外,DW层的数据访问频率较高,需要在保证查询性能的同时兼顾存储效率。因此,常采用压缩与解压速度较快的存储方式。本项目中,选择使用ORC文件格式 并结合Snappy压缩方式来创建内部表,以在节省存储空间的同时有效提升查询效率。 8.3 任务:构建数据仓库 2.构建DW层 ===== SLIDE 59 ===== 在Hive中构建DW层的操作步骤如下。 8.3 任务:构建数据仓库 2.构建DW层 ===== SLIDE 60 ===== STEP 01 创建数据库itcast_dwd,用于存储DWD层的表,具体HiveQL语句如下。 8.3 任务:构建数据仓库 CREATE DATABASE IF NOT EXISTS itcast_dwd; 2.构建DW层 ===== SLIDE 61 ===== STEP 02 在数据库itcast_dwd中创建明细事实表visit_consult_dwd,具体HiveQL语句如下。 8.3 任务:构建数据仓库 2.构建DW层 点击查看 ===== SLIDE 62 ===== STEP 03 创建数据库itcast_dws,用于存储DWS层的表,具体HiveQL语句如下。 8.3 任务:构建数据仓库 CREATE DATABASE IF NOT EXISTS itcast_dws; 2.构建DW层 ===== SLIDE 63 ===== STEP 04 在数据库itcast_dws中创建汇总事实表visit_dws,具体HiveQL语句如下。 8.3 任务:构建数据仓库 2.构建DW层 点击查看 ===== SLIDE 64 ===== STEP 05 在数据库itcast_dws中创建汇总事实表consult_dws,具体HiveQL语句如下。 8.3 任务:构建数据仓库 CREATE TABLE IF NOT EXISTS itcast_dws.consult_dws ( sid_total INT COMMENT '用户数(去重)' ) COMMENT '基于咨询用户量指标的汇总事实表' PARTITIONED BY (yearinfo STRING, monthinfo STRING) STORED AS ORC TBLPROPERTIES ('orc.compress'='SNAPPY'); 2.构建DW层 ===== SLIDE 65 ===== 任务:采集业务数据 8.4 ===== SLIDE 66 ===== 熟悉业务数据采集流程,能够通过编写和运行Spark程序将业务数据采集到数据仓库。 学习目标 8.4 任务:采集业务数据 ===== SLIDE 67 ===== 在本项目中,数据采集的主要过程是通过编写Spark程序,将MySQL数据库中存储的业务数据导入Hive数据仓库。本项目采用Python语言编写Spark程序来实现数据采集。 因此,在实现数据采集之前,需要在本地计算机中准备Python开发环境,包括安装 Python(版本为3.9.13)和Python集成开发工具PyCharm。 8.4 任务:采集业务数据 ===== SLIDE 68 ===== 接下来,将重点介绍如何在PyCharm中编写Spark程序,以实现数据采集,具体操作步骤如下。 8.4 任务:采集业务数据 ===== SLIDE 69 ===== STEP 01 打开Pycharm,进入Welcome to Pycharm界面,如图。 8.4 任务:采集业务数据 单击“New Project”按钮 ===== SLIDE 70 ===== STEP 02 打开“New Project”对话框,在该对话框中配置项目的基本信息,具体内容如下。 8.4 任务:采集业务数据 1 在“Interpreter type”区域选择“Custom environment”选项使用自定义环境。 在“Name”输入框中指定项目名称为hive_project。 2 3 在“Location”输入框中指定项目的存储路径为D:\Project\PycharmProject。 在“Base python”下拉框中选择本地安装的Python 3.9.13。 4 ===== SLIDE 71 ===== STEP 02 “New Project”对话框配置完成的效果如图。 8.4 任务:采集业务数据 单击“Create”按钮 ===== SLIDE 72 ===== STEP 03 创建项目hive_project。项目hive_project创建完成的效果如图。 8.4 任务:采集业务数据 ===== SLIDE 73 ===== STEP 04 在PyCharm中,使用快捷键“Ctrl+Alt+S”打开“Settings”对话框。在该对话框中,展开“Project:hive_project”并选择“Python Interpreter”选项,如图。 8.4 任务:采集业务数据 单击按钮打开Available Packages对话框 ===== SLIDE 74 ===== STEP 05 首先,在输入框中输入pyspark。接着,选择名为pyspark的包。 然后,勾选“Specify version”复选框。 最后,在“Specify version”复选框后方的下拉框中选择pyspark包的版本为4.1.0 dev1。 8.4 任务:采集业务数据 ===== SLIDE 75 ===== STEP 05 “Available Package”对话框配置完成的效果如图。 8.4 任务:采集业务数据 单击“Install Package”按钮安装pyspark包 ===== SLIDE 76 ===== STEP 06 当出现“Package 'pyspark' Installed successfully”的提示信息时,说明成功安装pyspark包。 8.4 任务:采集业务数据 ===== SLIDE 77 ===== STEP 07 在项目hive_project中创建一个名为mysql_to_hive的Python文件,在该文件中实现Spark程序,用于将MySQL数据库中存储的业务数据导入Hive数据仓库,具体代码如文件。 点击查看 8.4 任务:采集业务数据 ===== SLIDE 78 ===== STEP 08 为了便于在后续步骤中,在虚拟机Node03中使用spark-submit命令将mysql_to_hive.py文件中编写的Spark程序提交到YARN集群运行,此处将该文件上传到虚拟机Node03的/export/data目录中。 8.4 任务:采集业务数据 STEP 09 SQL脚本文件nev.sql包含本项目所需的业务数据。需要在MySQL中执行该脚本文件,以创建用户会话信息表web_chat_ems_2025_07和用户会话信息附属表web_chat_text_ems_2025_07,并向表中导入相应的业务数据。首先将SQL脚本文件nev.sql上传到虚拟机Node03的/export/data目录中。然后使用root用户登录MySQL,在MySQL命令行界面执行如下命令。 source /export/data/nev.sql ===== SLIDE 79 ===== STEP 10 将MySQL数据库nev中表web_chat_ems_2025_07的数据导入到Hive数据库itcast_ods中的表web_chat_ems_ods,在虚拟机Node03执行如下命令。 点击查看 8.4 任务:采集业务数据 ===== SLIDE 80 ===== STEP 11 将MySQL数据库nev中表web_chat_text_ems_2025_07的数据导入到Hive数据库itcast_ods中的表web_chat_text_ems_ods,在虚拟机Node03执行如下命令。 点击查看 8.4 任务:采集业务数据 ===== SLIDE 81 ===== 任务:预处理业务数据 8.5 ===== SLIDE 82 ===== 掌握业务数据预处理方法,能够使用HiveQL语句完成数据关联、字段转换、空值处理等操作。 学习目标 8.5 任务:预处理业务数据 ===== SLIDE 83 ===== 在本项目中,业务数据预处理的主要过程是将web_chat_ems_ods和web_chat_text_ems_ods两张表中的数据进行合并,并将合并后的结果存储到明细事实表visit_consult_dwd中。 8.5 任务:预处理业务数据 ===== SLIDE 84 ===== 在数据合并过程中,还需根据业务需求对原始数据进行转换,具体规则如下。 8.5 任务:预处理业务数据 1 将表web_chat_ems_ods中字段create_time的值转换为Unix时间戳,以便在数据计算与时间范围筛选中实现更高效的处理。 从表web_chat_ems_ods中的字段create_time提取年和月,用于作为明细事实表visit_consult_dwd的分区字段取值,以便后续按年、月进行分区裁剪与查询优化。 2 3 将表web_chat_ems_ods中字段msg_count的NULL替换为0,以便在后续分析中准确判断用户是否发起了有效咨询。 过滤表web_chat_ems_ods的字段area中值的开头不是中国的数据,仅保留中国地区的数据。 4 ===== SLIDE 85 ===== 接下来,将依据上述需求在Hive中完成本项目的数据转换操作,具体HiveQL语句如下。 点击查看 8.5 任务:预处理业务数据 ===== SLIDE 86 ===== 任务:分析业务数据 8.6 ===== SLIDE 87 ===== 数据分析是一种从数据中提取有价值信息的方法,能够帮助我们深入理解数据背后的规律与趋势。在本项目中,数据分析的主要过程是根据项目需求,使用HiveQL语句对明细事实表visit_consult_dwd中的数据进行统计分析,并将分析结果存储在相应的汇总事实表中,为后续的可视化展示提供数据支撑。 8.6 任务:分析业务数据 ===== SLIDE 88 ===== 掌握业务数据分析方法,能使用HiveQL语句进行访问用户量统计的操作。 学习目标 8.6.1 访问用户量统计 ===== SLIDE 89 ===== 通过查询明细事实表visit_consult_dwd的数据,统计不同地区的访问用户量,并将结果插入到汇总事实表visit_dws的相应分区中,具体HiveQL语句如下。 点击查看 8.6.1 访问用户量统计 ===== SLIDE 90 ===== 上述语句执行完成后,可查询汇总事实表visit_dws,获取2025年7月访问用户量排名前六的地区,具体HiveQL语句如下。 8.6.1 访问用户量统计 SELECT sid_total,province FROM itcast_dws.visit_dws WHERE yearinfo='2025' AND monthinfo='07' AND grouptype=1 ORDER BY sid_total DESC LIMIT 6; ===== SLIDE 91 ===== 上述语句执行完成后的效果如图。 8.6.1 访问用户量统计 ===== SLIDE 92 ===== 掌握业务数据分析方法,能够使用HiveQL语句进行会话页面统计的操作。 学习目标 8.6.2 会话页面统计 ===== SLIDE 93 ===== 通过查询明细事实表visit_consult_dwd的数据,统计不同用户在各页面发起会话的频次,并将结果插入到汇总事实表visit_dws的相应分区中,具体HiveQL语句如下。 点击查看 8.6.2 会话页面统计 ===== SLIDE 94 ===== 上述语句执行完成后,可查询汇总事实表visit_dws,获取2025年7月发起会话次数排名前三的页面,具体HiveQL语句如下。 8.6.2 会话页面统计 SELECT sid_total,from_url FROM itcast_dws.visit_dws WHERE yearinfo='2025' AND monthinfo='07' AND grouptype=3 AND from_url IS NOT NULL ORDER BY sid_total DESC LIMIT 3; ===== SLIDE 95 ===== 上述语句执行完成后的效果如图。 8.6.2 会话页面统计 ===== SLIDE 96 ===== 掌握业务数据分析方法,能够使用HiveQL语句进行总访问用户量统计的操作。 学习目标 8.6.3 总访问用户量统计 ===== SLIDE 97 ===== 通过查询明细事实表visit_consult_dwd的数据,统计网站的整体访问用户量,并将结果插入到汇总事实表visit_dws的相应分区中,具体HiveQL语句如下。 点击查看 8.6.3 总访问用户量统计 ===== SLIDE 98 ===== 上述语句执行完成后,可查询汇总事实表visit_dws,获取2025年7月的总访问用户量,具体HiveQL语句如下。 SELECT sid_total FROM itcast_dws.visit_dws WHERE yearinfo='2025' AND monthinfo='07' AND grouptype='4'; 8.6.3 总访问用户量统计 ===== SLIDE 99 ===== 上述语句执行完成后的效果如图。 8.6.3 总访问用户量统计 ===== SLIDE 100 ===== 掌握业务数据分析方法,能够使用HiveQL语句进行来源渠道访问用户量统计的操作。 学习目标 8.6.4 来源渠道访问用户量统计 ===== SLIDE 101 ===== 通过查询明细事实表visit_consult_dwd,统计不同来源渠道的访问用户量,并将结果插入到汇总事实表visit_dws的相应分区中,具体HiveQL语句如下。 点击查看 8.6.4 来源渠道访问用户量统计 ===== SLIDE 102 ===== 上述语句执行完成后,可查询汇总事实表visit_dws,获取2025年7月访问用户量排名前三的来源渠道,具体HiveQL语句如下。 SELECT sid_total,origin_channel FROM itcast_dws.visit_dws WHERE yearinfo='2025' AND monthinfo='07' AND grouptype=2 AND origin_channel != '未知' ORDER BY sid_total DESC LIMIT 3; 8.6.4 来源渠道访问用户量统计 ===== SLIDE 103 ===== 上述语句执行完成后的效果如图。 8.6.4 来源渠道访问用户量统计 ===== SLIDE 104 ===== 掌握业务数据分析方法,能够使用HiveQL语句进行咨询率统计的操作。 学习目标 8.6.5 咨询率统计 ===== SLIDE 105 ===== 实现咨询率统计的操作步骤如下。 8.6.5 咨询率统计 ===== SLIDE 106 ===== 通过查询明细事实表visit_consult_dwd,统计发起有效咨询的用户数量,并将结果插入到汇总事实表consult_dws的相应分区中,具体HiveQL语句如下。 8.6.5 咨询率统计 STEP 01 INSERT INTO itcast_dws.consult_dws PARTITION (yearinfo,monthinfo) SELECT count(DISTINCT sid) sid_total, yearinfo,monthinfo FROM itcast_dwd.visit_consult_dwd WHERE msg_count >= 1 GROUP BY yearinfo,monthinfo; ===== SLIDE 107 ===== 根据访问用户量和咨询用户量计算网站的咨询率,具体HiveQL语句如下。 8.6.5 咨询率统计 STEP 02 点击查看 ===== SLIDE 108 ===== 上述语句执行完成后的效果如图。 8.6.5 咨询率统计 STEP 02 ===== SLIDE 109 ===== 任务:实现数据可视化 8.7 ===== SLIDE 110 ===== 在我们的日常生活中,数据无处不在。从社交媒体的互动记录,到企业的经营数据,再到政府的统计报告,数据已经成为我们生活的一部分。然而,理解和解释这些数据并不总是那么容易。因此,数据可视化变得非常重要。数据可视化是一种将复杂数据转换为直观和易于解释的视觉形式的方法,它通过利用图形、图表和其他可视化元素来呈现数据的模式、趋势和关系。本任务将详细介绍如何使用FineBI对部分数据分析的结果进行可视化展示。 8.7 任务:实现数据可视化 ===== SLIDE 111 ===== 了解数据可视化,能够完成将数据分析结果导出到MySQL的操作。 学习目标 8.7.1 导出分析结果 ===== SLIDE 112 ===== 在本项目中,主要对访问用户量统计、会话页面统计和来源渠道访问用户量统计三个分析结果进行可视化展示。因此,为了便于FineBI连接和展示,需要通过Spark程序将Hive中汇总事实表visit_dws的分析结果导出到MySQL数据库。 8.7.1 导出分析结果 ===== SLIDE 113 ===== 在MySQL的数据库nev中创建与Hive数据库itcast_dws中汇总事实表visit_dws结构和名称相同的表。在MySQL命令行界面执行如下命令。 STEP 01 点击查看 8.7.1 导出分析结果 ===== SLIDE 114 ===== 在项目hive_project中创建一个名为hive_to_mysql的Python文件,在该文件中实现Spark程序,用于将Hive数据仓库中存储的分析结果导出到MySQL数据库中,具体代码如文件。 STEP 02 点击查看 8.7.1 导出分析结果 ===== SLIDE 115 ===== 为了便于在后续步骤中,在虚拟机Node03中使用spark-submit命令将hive_to_mysql.py文件中编写的Spark程序提交到YARN集群运行,此处将该文件上传到虚拟机Node03的/export/data目录中。 STEP 03 8.7.1 导出分析结果 ===== SLIDE 116 ===== 将Hive数据库itcast_dws中表visit_dws的数据导出到MySQL数据库nev中的表visit_dws,在虚拟机Node03执行如下命令。 STEP 04 点击查看 8.7.1 导出分析结果 ===== SLIDE 117 ===== 了解数据可视化,能够完成配置数据集的操作。 学习目标 8.7.2 配置数据集 ===== SLIDE 118 ===== FineBI是一款国内知名的商业智能(BI,Business Intelligence)工具,主要应用于企业级数据分析和决策支持。该工具提供丰富的图表与报表设计功能,能够满足企业不同层级、不同角色的数据可视化需求。 8.7.2 配置数据集 ===== SLIDE 119 ===== 在使用FineBI之前,需要在本地计算机上完成软件的安装与基本配置。有关安装与配置的详细步骤,读者可参考本书配套资源中提供的补充文档。完成FineBI的安装与配置后,需要在FineBI中配置数据集,以便从指定数据源中读取用于可视化展示的数据。 8.7.2 配置数据集 ===== SLIDE 120 ===== 在FineBI中配置数据集的操作主要包括配置数据连接和新建数据集两部分,具体介绍如下。 新建数据集 配置数据连接 8.7.2 配置数据集 ===== SLIDE 121 ===== 在FineBI中配置数据连接的目的是指定获取所需数据的数据源。接下来,将演示如何在FineBI中配置数据连接,以连接虚拟机Node03上的MySQL数据库,具体操作步骤如下。 8.7.2 配置数据集 1.配置数据连接 ===== SLIDE 122 ===== 1.配置数据连接 8.7.2 配置数据集 STEP 01 在FineBI平台的主界面,依次单击“管理系统”→“数据连接”→“数据连接管理”选项配置FineBI的数据连接,如图。 ===== SLIDE 123 ===== 1.配置数据连接 8.7.2 配置数据集 STEP 02 在“配置FineBI的数据连接”界面,单击“新建数据连接”按钮,如图。 ===== SLIDE 124 ===== 1.配置数据连接 8.7.2 配置数据集 STEP 03 单击“MySQL”选项选择使用MySQL作为数据源,并且设置数据连接的相关信息,如图。 定义数据连接的名称为教育大数据分析平台 指定存储业务数据的数据库nev 指定MySQL的IP地址为192.168.121.134 指定用户itcast的密码为Itcast@2025 ===== SLIDE 125 ===== 1.配置数据连接 8.7.2 配置数据集 STEP 04 单击“测试连接”按钮测试名为教育大数据分析平台的数据连接是否可以连接MySQL,如图。 ===== SLIDE 126 ===== 新建数据集的目的是在FineBI中获取要进行可视化展示的数据。在本项目中,需要从MySQL数据库nev的表visit_dws中读取数据,以获取访问用户量统计、会话页面统计和来源渠道访问用户量统计三个分析结果,具体操作步骤如下。 8.7.2 配置数据集 2.新建数据集 ===== SLIDE 127 ===== 8.7.2 配置数据集 STEP 01 在FineBI平台的主界面单击“公共数据”选项进入公共数据界面,如图。 2.新建数据集 ===== SLIDE 128 ===== 8.7.2 配置数据集 STEP 02 单击“新建文件夹”按钮创建用于存放本项目相关数据的文件夹,并将该文件夹重命名为教育大数据分析平台,如图。 2.新建数据集 ===== SLIDE 129 ===== 8.7.2 配置数据集 STEP 03 将鼠标移动至名为教育大数据分析平台的文件夹,单击该文件夹后方显示的按钮,在弹出的菜单选择“数据库表”选项,表示通过数据库中的表获取数据,如图。 2.新建数据集 ===== SLIDE 130 ===== 8.7.2 配置数据集 STEP 04 进入到数据库选表界面,在该界面中选择名为教育大数据分析平台的数据连接,并选中该数据连接中的表visit_dws,如图。 2.新建数据集 ===== SLIDE 131 ===== 8.7.2 配置数据集 STEP 05 单击“确定”按钮返回公共数据界面,如图。 2.新建数据集 ===== SLIDE 132 ===== 8.7.2 配置数据集 STEP 06 名为教育大数据分析平台的文件夹中添加的表并不会立即从MySQL中相应的表获取数据,用户需要进行手动的数据更新操作。在“公共数据界面”,单击“更新数据”按钮,如图 。 2.新建数据集 ===== SLIDE 133 ===== 了解数据可视化,能够实现访问用户量统计可视化的操作。 学习目标 8.7.3 实现访问用户量统计可视化 ===== SLIDE 134 ===== 利用FineBI中的区域地图对访问用户量统计的分析结果进行可视化展示,具体实现过程如下。 8.7.3 实现访问用户量统计可视化 ===== SLIDE 135 ===== 分析主题是FineBI中用于进行数据分析与可视化的容器,所有关于数据分析和可视化的操作均在分析主题中进行。接下来,将演示如何在FineBI中创建分析主题,用于展示访问用户量统计的分析结果,具体操作步骤如下。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 136 ===== STEP 01 在FineBI平台的主界面单击“我的分析”选项进入我的分析界面,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 137 ===== STEP 02 将鼠标移动至“全部分析”选项,单击该选项后方显示的 按钮,在弹出的菜单选择“文件夹”选项,创建用于存放本项目相关分析主题的文件夹,并重命名为教育大数据分析平台,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 138 ===== STEP 03 将鼠标移动至名为教育大数据分析平台的文件夹,单击该文件夹后方显示的 按钮,在弹出的菜单选择“分析主题”选项,在名为教育大数据分析平台的文件夹中新建分析主题。此时,浏览器会跳转到“分析主题”窗口,并弹出“选择数据”对话框,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 139 ===== STEP 04 单击名为教育大数据分析平台的文件夹,并选择名为教育大数据分析平台_visit_dws的表,指定当前分析主题使用的数据,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 140 ===== STEP 05 单击“确定”按钮返回“分析主题”窗口,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 141 ===== STEP 06 单击分析主题后方的 按钮,在弹出的菜单选择“重命名”选项,将分析主题的名称修改为访问用户量统计可视化。此时,当前窗口的名称也会修改为访问用户量统计可视化,如图。 8.7.3 实现访问用户量统计可视化 1.创建分析主题 ===== SLIDE 142 ===== 由于表visit_dws中包含多个维度的分析结果,为了简化当前分析主题所使用的数据,便于后续进行图表设计,在开展访问用户量统计的可视化展示之前,需要对当前主题的数据进行预处理,过滤掉与地区维度分析结果无关的数据,具体操作步骤如下。 8.7.3 实现访问用户量统计可视化 2.数据预处理 ===== SLIDE 143 ===== STEP 01 在“访问用户量统计可视化”窗口,单击“更多”按钮,在弹出的菜单中选择“过滤”选项,如图。 8.7.3 实现访问用户量统计可视化 2.数据预处理 ===== SLIDE 144 ===== STEP 02 在“过滤数据”界面,单击“添加条件(且)”选项。然后,单击出现的“请选择字段”选项,在弹出的菜单中选择字段province,如图。 8.7.3 实现访问用户量统计可视化 2.数据预处理 ===== SLIDE 145 ===== STEP 03 在“添加条件”界面,依次单击默认值为属于和无限制的下拉框,在弹出的菜单中,分别选择“不属于”选项和勾选“-1”复选框,表示过滤字段province中值等于-1的数据,仅保留地区维度的分析结果,如图。 8.7.3 实现访问用户量统计可视化 2.数据预处理 ===== SLIDE 146 ===== STEP 04 在“添加条件”界面,单击“更多”按钮,在弹出的菜单中选择“字段设置”选项。然后,仅勾选字段sid_total和province的复选框,如图。 8.7.3 实现访问用户量统计可视化 2.数据预处理 ===== SLIDE 147 ===== 在分析主题中,通过添加不同类型的图表组件来对数据进行可视化。在实现访问用户量统计的可视化时,需要在名为访问用户量统计可视化的分析主题中添加一个类型为区域地图的图表组件,通过该组件实现访问用户量统计的可视化。 8.7.3 实现访问用户量统计可视化 3.添加组件 ===== SLIDE 148 ===== 在“字段设置”界面,单击“组件”选项卡,在该选项卡中选择“图表类型”部分的“区域地图”选项,如图。 8.7.3 实现访问用户量统计可视化 3.添加组件 ===== SLIDE 149 ===== 在分析主题中使用区域地图的图表组件时,传递给区域地图的数据必须是地理角色的经纬度,而访问用户量统计的分析结果中,存储的是地理角色的名称。因此,需要将地理角色的名称转换为经纬度,具体操作步骤如下。 8.7.3 实现访问用户量统计可视化 4. 将地理角色的名称转换为经纬度 ===== SLIDE 150 ===== 在“添加类型为区域地图的图表组件”界面,选择字段province,并单击该字段后方显示的按钮,在弹出的菜单中依次选择“地理角色(无)”→“省/市/自治区”选项,如图。 8.7.3 实现访问用户量统计可视化 4. 将地理角色的名称转换为经纬度 STEP 01 ===== SLIDE 151 ===== 在“将地理角色的名称转换为经纬度”界面的操作后,进入到“地理角色(省/市/自治区)”对话框,在该对话框中FineBI会根据字段province中地理角色的名称与所有省级行政区的名称进行匹配,并自动为匹配成功的地理角色生成经纬度,如图 8.7.3 实现访问用户量统计可视化 4. 将地理角色的名称转换为经纬度 STEP 02 ===== SLIDE 152 ===== 在“地理角色(省/市/自治区)”对话框界面,单击“请选择匹配项”选项,在弹出的菜单中选择“北京市”选项,将名为中国的地理角色匹配为首都北京,如图。 8.7.3 实现访问用户量统计可视化 4. 将地理角色的名称转换为经纬度 STEP 03 ===== SLIDE 153 ===== 在“地理角色(省/市/自治区)对话框”单击“确定”按钮将地理角色的名称转换为经纬度,如图。 8.7.3 实现访问用户量统计可视化 4. 将地理角色的名称转换为经纬度 STEP 04 ===== SLIDE 154 ===== 在分析主题中,配置组件的作用是将数据填充到相应的图表组件中,并修改图表组件的样式。在名为访问用户量统计可视化的分析主题中,配置类型为区域地图的图表组件的操作步骤如下。 8.7.3 实现访问用户量统计可视化 5. 配置组件 ===== SLIDE 155 ===== 在“将地理角色的名称转换为经纬度”界面,首先分别将标注经度和纬度的临时字段province拖动到“横轴”和“纵轴”输入框。然后,将字段sid_total拖动到“颜色”输入框,如图。 8.7.3 实现访问用户量统计可视化 STEP 01 5. 配置组件 ===== SLIDE 156 ===== 了解数据可视化,能够实现访问会话页面统计可视化的操作。 学习目标 8.7.4 实现会话页面统计可视化 ===== SLIDE 157 ===== 利用FineBI中的多系列柱状图对会话页面统计的分析结果进行可视化展示,具体实现过程如下。 8.7.4 实现会话页面统计可视化 ===== SLIDE 158 ===== 为了区分不同分析结果的可视化效果,这里创建一个新的分析主题,用于展示会话页面统计的分析结果,具体操作步骤如下。 1.创建分析主题 8.7.4 实现会话页面统计可视化 ===== SLIDE 159 ===== 在我的分析界面中,将鼠标移动至名为教育大数据分析平台的文件夹,单击该文件夹后方显示的 按钮,在弹出的菜单选择“分析主题”选项,在名为教育大数据分析平台的文件夹新建分析主题。此时,浏览器会跳转到“分析主题”窗口,并弹出“选择数据”对话框,在该对话框中单击名为教育大数据分析平台的文件夹,并选择名为教育大数据分析平台_visit_dws的表,指定当前分析主题使用的数据。 STEP 01 1.创建分析主题 8.7.4 实现会话页面统计可视化 ===== SLIDE 160 ===== 为了区分不同分析主题的作用,将当前分析主题重命名为会话页面统计可视化,如图。 STEP 02 1.创建分析主题 8.7.4 实现会话页面统计可视化 ===== SLIDE 161 ===== 由于表visit_dws中包含多个维度的分析结果,为了简化当前分析主题所使用的数据,便于后续进行图表设计,在开展会话页面统计的可视化展示之前,需要对当前主题的数据进行预处理,过滤掉与会话来源页面维度分析结果无关的数据,具体操作步骤如下。 2.数据预处理 8.7.4 实现会话页面统计可视化 ===== SLIDE 162 ===== 在“会话页面统计可视化窗口”界面,单击“更多”按钮,在弹出的菜单中选择“过滤”选项,如图。 STEP 01 8.7.4 实现会话页面统计可视化 2.数据预处理 ===== SLIDE 163 ===== 在“过滤数据”界面,单击“添加条件(且)”选项。然后,单击出现的“请选择字段”选项,在弹出的菜单中选择字段from_url,如图。 STEP 02 8.7.4 实现会话页面统计可视化 2.数据预处理 ===== SLIDE 164 ===== 在“添加条件”界面,依次单击默认值为属于和无限制的下拉框,在弹出的菜单中,分别选择“不属于”选项,以及勾选“-1”和“ ”复选框,表示过滤字段from_url中值等于-1和空的数据,仅保留会话来源页面维度的分析结果,如图。 STEP 03 8.7.4 实现会话页面统计可视化 2.数据预处理 ===== SLIDE 165 ===== 在“添加条件”界面,单击“更多”按钮,在弹出的菜单中选择“字段设置”选项。然后,仅勾选字段sid_total和from_url的复选框,如图。 STEP 04 8.7.4 实现会话页面统计可视化 2.数据预处理 ===== SLIDE 166 ===== 在实现会话页面统计的可视化时,需要在名为会话页面统计可视化的分析主题中添加一个类型为多系列柱状图的图表组件,通过该组件实现会话页面统计的可视化。 3.添加组件 8.7.4 实现会话页面统计可视化 ===== SLIDE 167 ===== 在“添加类型为多系列柱状图的图表组件”界面,单击“组件”选项卡,在该选项卡中选择“图表类型”部分的“多系列柱状图”选项,如图。 8.7.4 实现会话页面统计可视化 3.添加组件 ===== SLIDE 168 ===== 在名为会话页面统计可视化的分析主题中,配置类型为多系列柱状图的图表组件的操作步骤如下。 4.配置组件 8.7.4 实现会话页面统计可视化 ===== SLIDE 169 ===== 分别将字段from_url和sid_total拖动到“横轴”和“纵轴”输入框,如图。 8.7.4 实现会话页面统计可视化 4.配置组件 STEP 01 ===== SLIDE 170 ===== 在“配置类型为多系列柱状图的图表组件”界面可以看出,默认情况下,所有页面名称均显示在多系列柱状图的横轴上,这种展示方式不便于对数据进行直观观察与比较。在“配置类型为多系列柱状图的图表组件”界面中,单击“组件样式”选项卡,在该选项卡中选中“自适应显示”折叠框中的“标准适应”选项,如图。 8.7.4 实现会话页面统计可视化 4.配置组件 STEP 02 ===== SLIDE 171 ===== 为便于按照一定规律观察各页面的会话发起次数,对多系列柱状图中横轴显示的页面名称按发起会话次数由高到低的顺序进行排列,使数据分布更加直观。在“配置类型为多系列柱状图的图表组件”界面中,将鼠标移动至“横轴”输入框中的字段from_url,单击该字段后方显示的按钮,在弹出的菜单中依次选择“降序”→“sid_total(求和)”选项,如图。 8.7.4 实现会话页面统计可视化 4.配置组件 STEP 03 ===== SLIDE 172 ===== 了解数据可视化,能够实现来源渠道访问用户量统计可视化的操作。 学习目标 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 173 ===== 利用FineBI中的饼图对来源渠道访问用户量统计的分析结果进行可视化展示,具体实现过程如下。 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 174 ===== 为了区分不同分析结果的可视化效果,这里创建一个新的分析主题,用于展示来源渠道访问用户量统计的分析结果,具体操作步骤如下。 1.创建分析主题 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 175 ===== 在我的分析界面中,将鼠标移动至名为教育大数据分析平台的文件夹,单击该文件夹后方显示的 按钮,在弹出的菜单选择“分析主题”选项,在名为教育大数据分析平台的文件夹新建分析主题。此时,浏览器会跳转到“分析主题”窗口,并弹出“选择数据”对话框,在该对话框中单击名为教育大数据分析平台的文件夹,并选择名为教育大数据分析平台_visit_dws的表,指定当前分析主题使用的数据。 STEP 01 1.创建分析主题 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 176 ===== 为了区分不同分析主题的作用,将当前分析主题重命名为来源渠道访问用户量统计可视化,如图。 STEP 02 1.创建分析主题 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 177 ===== 由于表visit_dws中包含多个维度的分析结果,为了简化当前分析主题所使用的数据,便于后续进行图表设计,在开展来源渠道访问用户量统计的可视化展示之前,需要对当前主题的数据进行预处理,过滤掉与来源渠道维度分析结果无关的数据,具体操作步骤如下。 2.数据预处理 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 178 ===== 在“来源渠道访问用户量统计可视化”窗口界面,单击“更多”按钮,在弹出的菜单中选择“过滤”选项,如图。 STEP 01 8.7.5 实现来源渠道访问用户量统计可视化 2.数据预处理 ===== SLIDE 179 ===== 在“过滤数据”界面中,单击“添加条件(且)”选项。然后,单击出现的“请选择字段”选项,在弹出的菜单中选择字段origin_channel,如图。 STEP 02 8.7.5 实现来源渠道访问用户量统计可视化 2.数据预处理 ===== SLIDE 180 ===== 在“添加条件”界面,依次单击默认值为属于和无限制的下拉框,在弹出的菜单中,分别选择“不属于”选项,以及勾选“-1”和“未知”复选框,表示过滤字段origin_channel中值等于-1和未知的数据,仅保留来源渠道维度的分析结果,如图。 STEP 03 8.7.5 实现来源渠道访问用户量统计可视化 2.数据预处理 ===== SLIDE 181 ===== 在“添加条件”界面,单击“更多”按钮,在弹出的菜单中选择“字段设置”选项。然后,仅勾选字段sid_total和origin_channel的复选框,如图。 STEP 04 8.7.5 实现来源渠道访问用户量统计可视化 2.数据预处理 ===== SLIDE 182 ===== 在实现来源渠道访问用户量统计的可视化时,需要在名为来源渠道访问用户量统计可视化的分析主题中添加一个类型为饼图的图表组件,通过该组件实现来源渠道访问用户量统计的可视化。 3.添加组件 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 183 ===== 在“字段设置”界面,单击“组件”选项卡,在该选项卡中选择“图表类型”部分的“饼图”选项,如图。 8.7.5 实现来源渠道访问用户量统计可视化 3.添加组件 ===== SLIDE 184 ===== 在名为来源渠道访问用户量统计可视化的分析主题中,配置类型为饼图的图表组件的操作步骤如下。 4.配置组件 8.7.5 实现来源渠道访问用户量统计可视化 ===== SLIDE 185 ===== 在“添加类型为饼图的图表组件”界面,首先将字段origin_channel拖动到“颜色”输入框。然后,将字段sid_total分别拖入到“角度”和“细粒度” 输入框,如图。 8.7.5 实现来源渠道访问用户量统计可视化 4.配置组件 STEP 01 ===== SLIDE 186 ===== 在“配置类型为饼图的图表组件”界面,将鼠标移动至“角度”输入框中的字段sid_total,单击该字段后方显示的按钮,在弹出的菜单中依次选择“快速计算(无)”→“占比”选项,如图。 8.7.5 实现来源渠道访问用户量统计可视化 4.配置组件 STEP 02 ===== SLIDE 187 ===== AI助学 学完本单元后,读者已经初步了解教育大数据分析平台的构建流程。然而,在项目实施过程中,仍可能难以判断数据仓库分层是否合理、数据采集与预处理步骤是否衔接正确、统计指标口径是否一致等。此时,可借助AI对项目实施过程进行辅助分析,帮助梳理关键环节,检查可能存在的问题,并提出改进建议。 AI 助 学 ===== SLIDE 188 ===== 单元小结 本单元主要讲解了综合项目——搭建教育大数据分析平台的实现过程。首先,介绍了项目建设基础,包括项目背景、需求分析、原始数据结构和项目架构。接着,介绍了部署Spark。然后,介绍了构建数据仓库、采集业务数据、预处理业务数据和分析业务数据的相关操作。最后,介绍了数据可视化的实现过程,包括导出分析结果、配置数据集、实现访问用户量统计可视化等。通过本单元的学习,读者能够系统掌握基于Hive的数据仓库构建与分析流程,并能够综合运用Spark、Hive与FineBI等工具完成从数据采集到可视化展示的完整实现,具备开展实际大数据项目开发的基本能力。 单 元 总 结